home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmigaPlus / Tools / Development / envCPP31 / c++ / tools / cprefs / source / vbccprefs.c < prev    next >
Encoding:
C/C++ Source or Header  |  2002-01-01  |  33.2 KB  |  1,268 lines

  1. /*
  2.  *  Source machine generated by GadToolsBox V2.0b
  3.  *  which is (c) Copyright 1991-1993 Jaba Development
  4.  *
  5.  *  GUI Designed by : Dietmar Eilert
  6.  */
  7.  
  8. //#include <exec/types.h>
  9. //#include <intuition/intuition.h>
  10. //#include <intuition/classes.h>
  11. //#include <intuition/classusr.h>
  12. //#include <intuition/imageclass.h>
  13. //#include <intuition/gadgetclass.h>
  14. //#include <libraries/gadtools.h>
  15. //#include <graphics/displayinfo.h>
  16. //#include <graphics/gfxbase.h>
  17. //#include <clib/exec_protos.h>
  18. //#include <clib/intuition_protos.h>
  19. //#include <clib/gadtools_protos.h>
  20. //#include <clib/graphics_protos.h>
  21. //#include <clib/utility_protos.h>
  22. //#include <string.h>
  23. //
  24. //#include <pragmas/exec_pragmas.h>
  25. //#include <pragmas/intuition_pragmas.h>
  26. //#include <pragmas/gadtools_pragmas.h>
  27. //#include <pragmas/graphics_pragmas.h>
  28. //#include <pragmas/utility_pragmas.h>
  29.  
  30. #include "defs.h"
  31.  
  32. struct Screen         *Scr = NULL;
  33. UBYTE                 *PubScreenName = NULL;
  34. APTR                   VisualInfo = NULL;
  35. struct Window         *INDEXWnd = NULL;
  36. struct Window         *COMPILERWnd = NULL;
  37. struct Window         *MESSAGESWnd = NULL;
  38. struct Window         *CODEWnd = NULL;
  39. struct Window         *OPTIMIZERWnd = NULL;
  40. struct Window         *LINKERWnd = NULL;
  41. struct Window         *SPECIALWnd = NULL;
  42. struct Window         *PPCWnd = NULL;
  43. struct Gadget         *INDEXGList = NULL;
  44. struct Gadget         *COMPILERGList = NULL;
  45. struct Gadget         *MESSAGESGList = NULL;
  46. struct Gadget         *CODEGList = NULL;
  47. struct Gadget         *OPTIMIZERGList = NULL;
  48. struct Gadget         *LINKERGList = NULL;
  49. struct Gadget         *SPECIALGList = NULL;
  50. struct Gadget         *PPCGList = NULL;
  51. struct Gadget         *INDEXGadgets[16];
  52. struct Gadget         *COMPILERGadgets[17];
  53. struct Gadget         *MESSAGESGadgets[14];
  54. struct Gadget         *CODEGadgets[9];
  55. struct Gadget         *OPTIMIZERGadgets[12];
  56. struct Gadget         *LINKERGadgets[12];
  57. struct Gadget         *SPECIALGadgets[5];
  58. struct Gadget         *PPCGadgets[13];
  59. UWORD                  INDEXLeft = 0;
  60. UWORD                  INDEXTop = 0;
  61. UWORD                  INDEXWidth = 640;
  62. UWORD                  INDEXHeight = 182;
  63. UWORD                  COMPILERLeft = 0;
  64. UWORD                  COMPILERTop = 0;
  65. UWORD                  COMPILERWidth = 640;
  66. UWORD                  COMPILERHeight = 182;
  67. UWORD                  MESSAGESLeft = 0;
  68. UWORD                  MESSAGESTop = 0;
  69. UWORD                  MESSAGESWidth = 640;
  70. UWORD                  MESSAGESHeight = 182;
  71. UWORD                  CODELeft = 0;
  72. UWORD                  CODETop = 0;
  73. UWORD                  CODEWidth = 640;
  74. UWORD                  CODEHeight = 182;
  75. UWORD                  OPTIMIZERLeft = 0;
  76. UWORD                  OPTIMIZERTop = 0;
  77. UWORD                  OPTIMIZERWidth = 640;
  78. UWORD                  OPTIMIZERHeight = 182;
  79. UWORD                  LINKERLeft = 0;
  80. UWORD                  LINKERTop = 0;
  81. UWORD                  LINKERWidth = 640;
  82. UWORD                  LINKERHeight = 182;
  83. UWORD                  SPECIALLeft = 0;
  84. UWORD                  SPECIALTop = 0;
  85. UWORD                  SPECIALWidth = 640;
  86. UWORD                  SPECIALHeight = 182;
  87. UWORD                  PPCLeft = 0;
  88. UWORD                  PPCTop = 0;
  89. UWORD                  PPCWidth = 640;
  90. UWORD                  PPCHeight = 182;
  91. UBYTE                 *INDEXWdt = NULL;
  92. UBYTE                 *COMPILERWdt = NULL;
  93. UBYTE                 *MESSAGESWdt = NULL;
  94. UBYTE                 *CODEWdt = NULL;
  95. UBYTE                 *OPTIMIZERWdt = NULL;
  96. UBYTE                 *LINKERWdt = NULL;
  97. UBYTE                 *SPECIALWdt = NULL;
  98. UBYTE                 *PPCWdt = NULL;
  99.  
  100. UBYTE *VERBOSE0Labels[] = {
  101.     (UBYTE *)"NoVerbose",
  102.     (UBYTE *)"Verbose",
  103.     (UBYTE *)"VeryVerbose",
  104.     NULL };
  105.  
  106. UBYTE *OPTIMIZE0Labels[] = {
  107.     (UBYTE *)"NoOptimize",
  108.     (UBYTE *)"OptimizeSome",
  109.     (UBYTE *)"OptimizeMost",
  110.     (UBYTE *)"OptimizeAll",
  111.     (UBYTE *)"OptimizeModules",
  112.     NULL };
  113.  
  114. UBYTE *LINK0Labels[] = {
  115.     (UBYTE *)"Link",
  116.     (UBYTE *)"NoLink",
  117.     NULL };
  118.  
  119. UBYTE *COPYRIGHT0Labels[] = {
  120.     (UBYTE *)"Copyright",
  121.     (UBYTE *)"NoCopyright",
  122.     NULL };
  123.  
  124. UBYTE *CPPCOMMENTS1Labels[] = {
  125.     (UBYTE *)"No C++ Comments",
  126.     (UBYTE *)"C++ Comments",
  127.     NULL };
  128.  
  129. UBYTE *C991Labels[] = {
  130.     (UBYTE *)"ISO C 1989",
  131.     (UBYTE *)"ISO C 1999",
  132.     NULL };
  133.  
  134. UBYTE *DEBUG1Labels[] = {
  135.     (UBYTE *)"NoDebug",
  136.     (UBYTE *)"Debug",
  137.     NULL };
  138.  
  139. UBYTE *PREPROCESSED1Labels[] = {
  140.     (UBYTE *)"NoKeepPreprocessed",
  141.     (UBYTE *)"KeepPreprocessed",
  142.     NULL };
  143.  
  144. UBYTE *ASSEMBLE1Labels[] = {
  145.     (UBYTE *)"Assemble",
  146.     (UBYTE *)"NoAssemble",
  147.     NULL };
  148.  
  149. UBYTE *INTERMEDIATE1Labels[] = {
  150.     (UBYTE *)"NoIntermediate",
  151.     (UBYTE *)"KeepIntermediate",
  152.     NULL };
  153.  
  154. UBYTE *MEMSIZE1Labels[] = {
  155.     (UBYTE *)"Memsize=huge",
  156.     (UBYTE *)"Memsize=small",
  157.     NULL };
  158.  
  159. UBYTE *DEBUGHUNK1Labels[] = {
  160.     (UBYTE *)"Hunk=DWARF2",
  161.     (UBYTE *)"Hunk=Amiga",
  162.     NULL };
  163.  
  164. UBYTE *ANSI2Labels[] = {
  165.     (UBYTE *)"NoANSI",
  166.     (UBYTE *)"ANSI C",
  167.     NULL };
  168.  
  169. UBYTE *ISO2Labels[] = {
  170.     (UBYTE *)"NoISO",
  171.     (UBYTE *)"ISO C",
  172.     NULL };
  173.  
  174. UBYTE *HIDEPATH2Labels[] = {
  175.     (UBYTE *)"FullFilenames",
  176.     (UBYTE *)"HidePathPart",
  177.     NULL };
  178.  
  179. UBYTE *WARNINGS2Labels[] = {
  180.     (UBYTE *)"Warnings",
  181.     (UBYTE *)"AllWarningsON",
  182.     (UBYTE *)"AllWarningsOFF",
  183.     NULL };
  184.  
  185. UBYTE *CPU3Labels[] = {
  186.     (UBYTE *)"CPU=any",
  187.     (UBYTE *)"CPU=68010",
  188.     (UBYTE *)"CPU=68020",
  189.     (UBYTE *)"CPU=68030",
  190.     (UBYTE *)"CPU=68040",
  191.     (UBYTE *)"CPU=68060",
  192.     NULL };
  193.  
  194. UBYTE *MATH3Labels[] = {
  195.     (UBYTE *)"NoMath",
  196.     (UBYTE *)"Math=any",
  197.     (UBYTE *)"Math=ieee.lib",
  198.     (UBYTE *)"Math=68881",
  199.     (UBYTE *)"Math=68040",
  200.     NULL };
  201.  
  202. UBYTE *LARGECODE3Labels[] = {
  203.     (UBYTE *)"LargeCode",
  204.     (UBYTE *)"SmallCode",
  205.     NULL };
  206.  
  207. UBYTE *LARGEDATA3Labels[] = {
  208.     (UBYTE *)"LargeData",
  209.     (UBYTE *)"SmallData",
  210.     NULL };
  211.  
  212. UBYTE *STACKCHECK3Labels[] = {
  213.     (UBYTE *)"NoStackCheck",
  214.     (UBYTE *)"StackCheck",
  215.     NULL };
  216.  
  217. UBYTE *PROFILE3Labels[] = {
  218.     (UBYTE *)"NoProfile",
  219.     (UBYTE *)"Profile",
  220.     NULL };
  221.  
  222. UBYTE *CONST3Labels[] = {
  223.     (UBYTE *)"ConstData=Code",
  224.     (UBYTE *)"ConstData=Data",
  225.     NULL };
  226.  
  227. UBYTE *DOUBLEPUSH3Labels[] = {
  228.     (UBYTE *)"NoDoublePush",
  229.     (UBYTE *)"DoublePush",
  230.     NULL };
  231.  
  232. UBYTE *OPTIMIZER4Labels[] = {
  233.     (UBYTE *)"NoOptimize",
  234.     (UBYTE *)"OptimizeSome",
  235.     (UBYTE *)"OptimizeMost",
  236.     (UBYTE *)"OptimizeAll",
  237.     (UBYTE *)"OptimizeModules",
  238.     NULL };
  239.  
  240. UBYTE *UNROLLALL4Labels[] = {
  241.     (UBYTE *)"NoUnrollAll",
  242.     (UBYTE *)"UnrollAll",
  243.     NULL };
  244.  
  245. UBYTE *OPTIMIZESIZE4Labels[] = {
  246.     (UBYTE *)"NoOptimizeSize",
  247.     (UBYTE *)"OptimizeSize",
  248.     NULL };
  249.  
  250. UBYTE *OPTIMIZESPEED4Labels[] = {
  251.     (UBYTE *)"NoOptimizeSpeed",
  252.     (UBYTE *)"OptimizeSpeed",
  253.     NULL };
  254.  
  255. UBYTE *ASSOZIATIVEFP4Labels[] = {
  256.     (UBYTE *)"NoAssoziativeFP",
  257.     (UBYTE *)"AssoziativeFP",
  258.     NULL };
  259.  
  260. UBYTE *OPTIMIZEALIAS4Labels[] = {
  261.     (UBYTE *)"OptimizeAlias",
  262.     (UBYTE *)"NoOptAlias",
  263.     NULL };
  264.  
  265. UBYTE *OPTIMIZEINLINE4Labels[] = {
  266.     (UBYTE *)"OptimizeInline",
  267.     (UBYTE *)"NoOptInline",
  268.     NULL };
  269.  
  270. UBYTE *OPTIMIZEPEEPHOLE4Labels[] = {
  271.     (UBYTE *)"OptimizePeephole",
  272.     (UBYTE *)"NoOptPeephole",
  273.     NULL };
  274.  
  275. UBYTE *OPTIMIZESCHEDULE4Labels[] = {
  276.     (UBYTE *)"NoSchedule",
  277.     (UBYTE *)"OptimizeSchedule",
  278.     NULL };
  279.  
  280. UBYTE *LINKER5Labels[] = {
  281.     (UBYTE *)"Link",
  282.     (UBYTE *)"NoLink",
  283.     NULL };
  284.  
  285. UBYTE *EXTRALIB5Labels[] = {
  286.     (UBYTE *)"NoExtraLib",
  287.     (UBYTE *)"ExtraLib",
  288.     NULL };
  289.  
  290. UBYTE *STDLIB5Labels[] = {
  291.     (UBYTE *)"Stdlib",
  292.     (UBYTE *)"NoStdlib",
  293.     NULL };
  294.  
  295. UBYTE *MERGEFPCONST7Labels[] = {
  296.     (UBYTE *)"NoMergeConst",
  297.     (UBYTE *)"MergeConstants",
  298.     NULL };
  299.  
  300. UBYTE *RODATA7Labels[] = {
  301.     (UBYTE *)"ConstInRodata",
  302.     (UBYTE *)"ConstInData",
  303.     NULL };
  304.  
  305. UBYTE *FSUBZERO7Labels[] = {
  306.     (UBYTE *)"No FSUB-ZERO",
  307.     (UBYTE *)"Use fsub-Zero",
  308.     NULL };
  309.  
  310. UBYTE *AMIGAALIGN7Labels[] = {
  311.     (UBYTE *)"NoAmigaAlign",
  312.     (UBYTE *)"AmigaAlign",
  313.     NULL };
  314.  
  315. UBYTE *ELF7Labels[] = {
  316.     (UBYTE *)"NoElf",
  317.     (UBYTE *)"PrefixElf",
  318.     NULL };
  319.  
  320. UBYTE *POWEROPEN7Labels[] = {
  321.     (UBYTE *)"NoPowerOpenABI",
  322.     (UBYTE *)"PowerOpen AIX",
  323.     (UBYTE *)"PowerOpen StormC",
  324.     NULL };
  325.  
  326. UBYTE *REGISTERNAMES7Labels[] = {
  327.     (UBYTE *)"UseRegisterNames",
  328.     (UBYTE *)"NoRegisterNames",
  329.     NULL };
  330.  
  331. UBYTE *SETCCS7Labels[] = {
  332.     (UBYTE *)"NoCCSSignal",
  333.     (UBYTE *)"SetCCSSignal",
  334.     NULL };
  335.  
  336. UBYTE *LMW7Labels[] = {
  337.     (UBYTE *)"No LMW/STMW",
  338.     (UBYTE *)"Use lmw/stmw",
  339.     NULL };
  340.  
  341. UBYTE *FMADD7Labels[] = {
  342.     (UBYTE *)"No FMADD/FMSUB",
  343.     (UBYTE *)"Use fmadd/fmsub",
  344.     NULL };
  345.  
  346. UBYTE *EMBEDDEDABI7Labels[] = {
  347.     (UBYTE *)"NoEmbeddedABI",
  348.     (UBYTE *)"EmbeddedABI",
  349.     NULL };
  350.  
  351. UBYTE *ALIGNSTACK7Labels[] = {
  352.     (UBYTE *)"AlignStack",
  353.     (UBYTE *)"NoAlignStack",
  354.     NULL };
  355.  
  356. struct TextAttr topaz8 = {
  357.     ( STRPTR )"topaz.font", 8, 0x00, 0x00 };
  358.  
  359. struct IntuiText OPTIMIZERIText[] = {
  360.     1, 0, JAM1,104, 132, &topaz8, (UBYTE *)"Note: These options only take effect if 'Optimize' is on.", NULL };
  361.  
  362. UWORD INDEXGTypes[] = {
  363.     BUTTON_KIND,
  364.     BUTTON_KIND,
  365.     CYCLE_KIND,
  366.     BUTTON_KIND,
  367.     BUTTON_KIND,
  368.     BUTTON_KIND,
  369.     CYCLE_KIND,
  370.     BUTTON_KIND,
  371.     BUTTON_KIND,
  372.     CYCLE_KIND,
  373.     BUTTON_KIND,
  374.     CYCLE_KIND,
  375.     BUTTON_KIND,
  376.     BUTTON_KIND,
  377.     BUTTON_KIND,
  378.     STRING_KIND
  379. };
  380.  
  381. UWORD COMPILERGTypes[] = {
  382.     CYCLE_KIND,
  383.     CYCLE_KIND,
  384.     CYCLE_KIND,
  385.     STRING_KIND,
  386.     LISTVIEW_KIND,
  387.     BUTTON_KIND,
  388.     BUTTON_KIND,
  389.     STRING_KIND,
  390.     LISTVIEW_KIND,
  391.     BUTTON_KIND,
  392.     BUTTON_KIND,
  393.     BUTTON_KIND,
  394.     CYCLE_KIND,
  395.     CYCLE_KIND,
  396.     CYCLE_KIND,
  397.     CYCLE_KIND,
  398.     CYCLE_KIND
  399. };
  400.  
  401. UWORD MESSAGESGTypes[] = {
  402.     BUTTON_KIND,
  403.     CYCLE_KIND,
  404.     CYCLE_KIND,
  405.     BUTTON_KIND,
  406.     BUTTON_KIND,
  407.     CYCLE_KIND,
  408.     STRING_KIND,
  409.     LISTVIEW_KIND,
  410.     BUTTON_KIND,
  411.     BUTTON_KIND,
  412.     STRING_KIND,
  413.     LISTVIEW_KIND,
  414.     CYCLE_KIND,
  415.     STRING_KIND
  416. };
  417.  
  418. UWORD CODEGTypes[] = {
  419.     BUTTON_KIND,
  420.     CYCLE_KIND,
  421.     CYCLE_KIND,
  422.     CYCLE_KIND,
  423.     CYCLE_KIND,
  424.     CYCLE_KIND,
  425.     CYCLE_KIND,
  426.     CYCLE_KIND,
  427.     CYCLE_KIND
  428. };
  429.  
  430. UWORD OPTIMIZERGTypes[] = {
  431.     BUTTON_KIND,
  432.     CYCLE_KIND,
  433.     CYCLE_KIND,
  434.     CYCLE_KIND,
  435.     CYCLE_KIND,
  436.     CYCLE_KIND,
  437.     CYCLE_KIND,
  438.     CYCLE_KIND,
  439.     CYCLE_KIND,
  440.     CYCLE_KIND,
  441.     STRING_KIND,
  442.     STRING_KIND
  443. };
  444.  
  445. UWORD LINKERGTypes[] = {
  446.     BUTTON_KIND,
  447.     CYCLE_KIND,
  448.     BUTTON_KIND,
  449.     BUTTON_KIND,
  450.     STRING_KIND,
  451.     LISTVIEW_KIND,
  452.     CYCLE_KIND,
  453.     BUTTON_KIND,
  454.     BUTTON_KIND,
  455.     STRING_KIND,
  456.     LISTVIEW_KIND,
  457.     CYCLE_KIND
  458. };
  459.  
  460. UWORD SPECIALGTypes[] = {
  461.     BUTTON_KIND,
  462.     STRING_KIND,
  463.     LISTVIEW_KIND,
  464.     BUTTON_KIND,
  465.     BUTTON_KIND
  466. };
  467.  
  468. UWORD PPCGTypes[] = {
  469.     BUTTON_KIND,
  470.     CYCLE_KIND,
  471.     CYCLE_KIND,
  472.     CYCLE_KIND,
  473.     CYCLE_KIND,
  474.     CYCLE_KIND,
  475.     CYCLE_KIND,
  476.     CYCLE_KIND,
  477.     CYCLE_KIND,
  478.     CYCLE_KIND,
  479.     CYCLE_KIND,
  480.     CYCLE_KIND,
  481.     CYCLE_KIND
  482. };
  483.  
  484. struct NewGadget INDEXNGad[] = {
  485.     431, 9, 191, 14, (UBYTE *)"Code Options...", NULL, GD_CODEOPTIONS, PLACETEXT_IN, NULL, NULL,
  486.     431, 39, 191, 14, (UBYTE *)"Linker Options...", NULL, GD_LINKEROPTIONS, PLACETEXT_IN, NULL, NULL,
  487.     431, 84, 191, 14, NULL, NULL, GD_VERBOSE, 0, NULL, NULL,
  488.     263, 164, 111, 14, (UBYTE *)"SAVE", NULL, GD_SAVE, PLACETEXT_IN, NULL, NULL,
  489.     510, 163, 111, 14, (UBYTE *)"Cancel", NULL, GD_CANCEL, PLACETEXT_IN, NULL, NULL,
  490.     10, 39, 191, 14, (UBYTE *)"Optimizer Options...", NULL, GD_OPTIMIZEROPTIONS, PLACETEXT_IN, NULL, NULL,
  491.     10, 54, 191, 14, NULL, NULL, GD_OPTIMIZE, 0, NULL, NULL,
  492.     10, 9, 191, 14, (UBYTE *)"Compiler Options...", NULL, GD_COMPILEROPTIONS, PLACETEXT_IN, NULL, NULL,
  493.     221, 9, 191, 14, (UBYTE *)"Message Options...", NULL, GD_MESSAGEOPTIONS, PLACETEXT_IN, NULL, NULL,
  494.     431, 54, 191, 14, NULL, NULL, GD_LINK, 0, NULL, NULL,
  495.     10, 164, 111, 14, (UBYTE *)"Save Default", NULL, GD_SAVEDEFAULT, PLACETEXT_IN, NULL, NULL,
  496.     431, 99, 191, 14, NULL, NULL, GD_COPYRIGHT, 0, NULL, NULL,
  497.     221, 54, 191, 14, (UBYTE *)"Other Options...", NULL, GD_OTHEROPTIONS, PLACETEXT_IN, NULL, NULL,
  498.     221, 39, 191, 14, (UBYTE *)"PPC...", NULL, GD_PPCOPTIONS, PLACETEXT_IN, NULL, NULL,
  499.     386, 99, 26, 14, (UBYTE *)"?", NULL, GD_ASKCONFIG, PLACETEXT_IN, NULL, NULL,
  500.     221, 99, 164, 14, (UBYTE *)"Target", NULL, GD_VCCCONFIG, PLACETEXT_ABOVE, NULL, NULL
  501. };
  502.  
  503. struct NewGadget COMPILERNGad[] = {
  504.     10, 39, 191, 14, NULL, NULL, GD_CPPCOMMENTS, 0, NULL, NULL,
  505.     10, 54, 191, 14, NULL, NULL, GD_C99, 0, NULL, NULL,
  506.     10, 9, 191, 14, NULL, NULL, GD_DEBUG, 0, NULL, NULL,
  507.     221, 69, 191, 14, NULL, NULL, GD_EDITINCLUDE, 0, NULL, NULL,
  508.     221, 24, 191, 96, (UBYTE *)"Include Directory", NULL, GD_INCLUDES, PLACETEXT_ABOVE, NULL, NULL,
  509.     314, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDINCLUDE, PLACETEXT_IN, NULL, NULL,
  510.     364, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELINCLUDE, PLACETEXT_IN, NULL, NULL,
  511.     421, 143, 191, 14, NULL, NULL, GD_EDITDEFINE, 0, NULL, NULL,
  512.     421, 24, 191, 96, (UBYTE *)"Define", NULL, GD_DEFINES, PLACETEXT_ABOVE, NULL, NULL,
  513.     514, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDDEFINE, PLACETEXT_IN, NULL, NULL,
  514.     564, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELDEFINE, PLACETEXT_IN, NULL, NULL,
  515.     263, 163, 111, 14, (UBYTE *)"Back", NULL, GD_OKCOMPILER, PLACETEXT_IN, NULL, NULL,
  516.     10, 69, 191, 14, NULL, NULL, GD_PREPROCESSED, 0, NULL, NULL,
  517.     10, 99, 191, 14, NULL, NULL, GD_ASSEMBLE, 0, NULL, NULL,
  518.     10, 84, 191, 14, NULL, NULL, GD_INTERMEDIATE, 0, NULL, NULL,
  519.     10, 114, 191, 14, NULL, NULL, GD_MEMSIZE, 0, NULL, NULL,
  520.     10, 24, 191, 14, NULL, NULL, GD_DEBUGHUNK, 0, NULL, NULL
  521. };
  522.  
  523. struct NewGadget MESSAGESNGad[] = {
  524.     263, 163, 111, 14, (UBYTE *)"Back", NULL, GD_OKMESSAGES, PLACETEXT_IN, NULL, NULL,
  525.     10, 24, 191, 14, NULL, NULL, GD_ANSI, 0, NULL, NULL,
  526.     10, 39, 191, 14, NULL, NULL, GD_ISO, 0, NULL, NULL,
  527.     523, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDENABLED, PLACETEXT_IN, NULL, NULL,
  528.     573, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELENABLED, PLACETEXT_IN, NULL, NULL,
  529.     10, 54, 191, 14, NULL, NULL, GD_HIDEPATH, 0, NULL, NULL,
  530.     431, 106, 191, 14, NULL, NULL, GD_EDITENABLED, 0, NULL, NULL,
  531.     431, 24, 191, 96, (UBYTE *)"Enable Warning", NULL, GD_ENABLED, PLACETEXT_ABOVE, NULL, NULL,
  532.     313, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDDISABLED, PLACETEXT_IN, NULL, NULL,
  533.     363, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELDISABLED, PLACETEXT_IN, NULL, NULL,
  534.     221, 106, 191, 14, NULL, NULL, GD_EDITDISABLED, 0, NULL, NULL,
  535.     221, 24, 191, 96, (UBYTE *)"Disable Warning", NULL, GD_DISABLED, PLACETEXT_ABOVE, NULL, NULL,
  536.     10, 9, 191, 14, NULL, NULL, GD_WARNINGS, 0, NULL, NULL,
  537.     10, 121, 191, 14, (UBYTE *)"MaxErrors", NULL, GD_MAXERRORS, PLACETEXT_ABOVE, NULL, NULL
  538. };
  539.  
  540. struct NewGadget CODENGad[] = {
  541.     263, 163, 111, 14, (UBYTE *)"Back", NULL, GD_OKCODE, PLACETEXT_IN, NULL, NULL,
  542.     10, 9, 191, 14, NULL, NULL, GD_CPU, 0, NULL, NULL,
  543.     10, 24, 191, 14, NULL, NULL, GD_MATH, 0, NULL, NULL,
  544.     221, 24, 191, 14, NULL, NULL, GD_LARGECODE, 0, NULL, NULL,
  545.     221, 9, 191, 14, NULL, NULL, GD_LARGEDATA, 0, NULL, NULL,
  546.     431, 39, 191, 14, NULL, NULL, GD_STACKCHECK, 0, NULL, NULL,
  547.     431, 9, 191, 14, NULL, NULL, GD_PROFILE, 0, NULL, NULL,
  548.     221, 39, 191, 14, NULL, NULL, GD_CONST, 0, NULL, NULL,
  549.     431, 24, 191, 14, NULL, NULL, GD_DOUBLEPUSH, 0, NULL, NULL
  550. };
  551.  
  552. struct NewGadget OPTIMIZERNGad[] = {
  553.     263, 163, 111, 14, (UBYTE *)"OK", NULL, GD_OKOPTIMIZER, PLACETEXT_IN, NULL, NULL,
  554.     221, 9, 191, 14, NULL, NULL, GD_OPTIMIZER, 0, NULL, NULL,
  555.     221, 54, 191, 14, NULL, NULL, GD_UNROLLALL, 0, NULL, NULL,
  556.     10, 39, 191, 14, NULL, NULL, GD_OPTIMIZESIZE, 0, NULL, NULL,
  557.     10, 54, 191, 14, NULL, NULL, GD_OPTIMIZESPEED, 0, NULL, NULL,
  558.     431, 54, 191, 14, NULL, NULL, GD_ASSOZIATIVEFP, 0, NULL, NULL,
  559.     431, 39, 191, 14, NULL, NULL, GD_OPTIMIZEALIAS, 0, NULL, NULL,
  560.     221, 39, 191, 14, NULL, NULL, GD_OPTIMIZEINLINE, 0, NULL, NULL,
  561.     10, 69, 191, 14, NULL, NULL, GD_OPTIMIZEPEEPHOLE, 0, NULL, NULL,
  562.     10, 84, 191, 14, NULL, NULL, GD_OPTIMIZESCHEDULE, 0, NULL, NULL,
  563.     221, 84, 191, 14, (UBYTE *)"Unroll Size", NULL, GD_UNROLLSIZE, PLACETEXT_RIGHT, NULL, NULL,
  564.     221, 99, 191, 14, (UBYTE *)"Inline Size", NULL, GD_INLINESIZE, PLACETEXT_RIGHT, NULL, NULL
  565. };
  566.  
  567. struct NewGadget LINKERNGad[] = {
  568.     263, 163, 111, 14, (UBYTE *)"Back", NULL, GD_OKLINKER, PLACETEXT_IN, NULL, NULL,
  569.     10, 9, 191, 14, NULL, NULL, GD_LINKER, 0, NULL, NULL,
  570.     313, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDOBJECT, PLACETEXT_IN, NULL, NULL,
  571.     363, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELOBJECT, PLACETEXT_IN, NULL, NULL,
  572.     221, 59, 191, 14, NULL, NULL, GD_EDITOBJECT, 0, NULL, NULL,
  573.     221, 24, 191, 96, (UBYTE *)"Libraries/Objects", NULL, GD_OBJECTS, PLACETEXT_ABOVE, NULL, NULL,
  574.     10, 39, 191, 14, NULL, NULL, GD_EXTRALIB, 0, NULL, NULL,
  575.     518, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDLIBPATH, PLACETEXT_IN, NULL, NULL,
  576.     568, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELLIBPATH, PLACETEXT_IN, NULL, NULL,
  577.     426, 143, 191, 14, NULL, NULL, GD_EDITLIBPATH, 0, NULL, NULL,
  578.     426, 24, 191, 96, (UBYTE *)"Folders", NULL, GD_LIBPATHS, PLACETEXT_ABOVE, NULL, NULL,
  579.     10, 24, 191, 14, NULL, NULL, GD_STDLIB, 0, NULL, NULL
  580. };
  581.  
  582. struct NewGadget SPECIALNGad[] = {
  583.     263, 163, 111, 14, (UBYTE *)"Back", NULL, GD_OKSPECIAL, PLACETEXT_IN, NULL, NULL,
  584.     136, 101, 381, 14, NULL, NULL, GD_EDITOPTION, 0, NULL, NULL,
  585.     136, 24, 381, 96, (UBYTE *)"Options", NULL, GD_OPTIONS, PLACETEXT_ABOVE, NULL, NULL,
  586.     419, 121, 49, 14, (UBYTE *)"+", NULL, GD_ADDOPTION, PLACETEXT_IN, NULL, NULL,
  587.     468, 121, 49, 14, (UBYTE *)"X", NULL, GD_DELOPTION, PLACETEXT_IN, NULL, NULL
  588. };
  589.  
  590. struct NewGadget PPCNGad[] = {
  591.     263, 163, 111, 14, (UBYTE *)"Back", NULL, GD_OKPPC, PLACETEXT_IN, NULL, NULL,
  592.     10, 54, 191, 14, NULL, NULL, GD_MERGEFPCONST, 0, NULL, NULL,
  593.     10, 39, 191, 14, NULL, NULL, GD_RODATA, 0, NULL, NULL,
  594.     221, 39, 191, 14, NULL, NULL, GD_FSUBZERO, 0, NULL, NULL,
  595.     10, 24, 191, 14, NULL, NULL, GD_AMIGAALIGN, 0, NULL, NULL,
  596.     10, 69, 191, 14, NULL, NULL, GD_ELF, 0, NULL, NULL,
  597.     431, 9, 191, 14, NULL, NULL, GD_POWEROPEN, 0, NULL, NULL,
  598.     10, 84, 191, 14, NULL, NULL, GD_REGISTERNAMES, 0, NULL, NULL,
  599.     431, 39, 191, 14, NULL, NULL, GD_SETCCS, 0, NULL, NULL,
  600.     221, 9, 191, 14, NULL, NULL, GD_LMW, 0, NULL, NULL,
  601.     221, 24, 191, 14, NULL, NULL, GD_FMADD, 0, NULL, NULL,
  602.     431, 24, 191, 14, NULL, NULL, GD_EMBEDDEDABI, 0, NULL, NULL,
  603.     10, 9, 191, 14, NULL, NULL, GD_ALIGNSTACK, 0, NULL, NULL
  604. };
  605.  
  606. ULONG INDEXGTags[] = {
  607.     (TAG_DONE),
  608.     (TAG_DONE),
  609.     (GTCY_Labels), (ULONG)&VERBOSE0Labels[ 0 ], (TAG_DONE),
  610.     (TAG_DONE),
  611.     (TAG_DONE),
  612.     (TAG_DONE),
  613.     (GTCY_Labels), (ULONG)&OPTIMIZE0Labels[ 0 ], (TAG_DONE),
  614.     (TAG_DONE),
  615.     (TAG_DONE),
  616.     (GTCY_Labels), (ULONG)&LINK0Labels[ 0 ], (TAG_DONE),
  617.     (TAG_DONE),
  618.     (GTCY_Labels), (ULONG)©RIGHT0Labels[ 0 ], (TAG_DONE),
  619.     (TAG_DONE),
  620.     (TAG_DONE),
  621.     (TAG_DONE),
  622.     (GTST_MaxChars), 256, (TAG_DONE)
  623. };
  624.  
  625. ULONG COMPILERGTags[] = {
  626.     (GTCY_Labels), (ULONG)&CPPCOMMENTS1Labels[ 0 ], (TAG_DONE),
  627.     (GTCY_Labels), (ULONG)&C991Labels[ 0 ], (TAG_DONE),
  628.     (GTCY_Labels), (ULONG)&DEBUG1Labels[ 0 ], (TAG_DONE),
  629.     (GTST_MaxChars), 256, (TAG_DONE),
  630.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  631.     (TAG_DONE),
  632.     (TAG_DONE),
  633.     (GTST_MaxChars), 256, (TAG_DONE),
  634.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  635.     (TAG_DONE),
  636.     (TAG_DONE),
  637.     (TAG_DONE),
  638.     (GTCY_Labels), (ULONG)&PREPROCESSED1Labels[ 0 ], (TAG_DONE),
  639.     (GTCY_Labels), (ULONG)&ASSEMBLE1Labels[ 0 ], (TAG_DONE),
  640.     (GTCY_Labels), (ULONG)&INTERMEDIATE1Labels[ 0 ], (TAG_DONE),
  641.     (GTCY_Labels), (ULONG)&MEMSIZE1Labels[ 0 ], (TAG_DONE),
  642.     (GTCY_Labels), (ULONG)&DEBUGHUNK1Labels[ 0 ], (TAG_DONE)
  643. };
  644.  
  645. ULONG MESSAGESGTags[] = {
  646.     (TAG_DONE),
  647.     (GTCY_Labels), (ULONG)&ANSI2Labels[ 0 ], (TAG_DONE),
  648.     (GTCY_Labels), (ULONG)&ISO2Labels[ 0 ], (TAG_DONE),
  649.     (TAG_DONE),
  650.     (TAG_DONE),
  651.     (GTCY_Labels), (ULONG)&HIDEPATH2Labels[ 0 ], (TAG_DONE),
  652.     (GTST_MaxChars), 256, (TAG_DONE),
  653.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  654.     (TAG_DONE),
  655.     (TAG_DONE),
  656.     (GTST_MaxChars), 256, (TAG_DONE),
  657.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  658.     (GTCY_Labels), (ULONG)&WARNINGS2Labels[ 0 ], (TAG_DONE),
  659.     (GTST_MaxChars), 256, (TAG_DONE)
  660. };
  661.  
  662. ULONG CODEGTags[] = {
  663.     (TAG_DONE),
  664.     (GTCY_Labels), (ULONG)&CPU3Labels[ 0 ], (TAG_DONE),
  665.     (GTCY_Labels), (ULONG)&MATH3Labels[ 0 ], (TAG_DONE),
  666.     (GTCY_Labels), (ULONG)&LARGECODE3Labels[ 0 ], (TAG_DONE),
  667.     (GTCY_Labels), (ULONG)&LARGEDATA3Labels[ 0 ], (TAG_DONE),
  668.     (GTCY_Labels), (ULONG)&STACKCHECK3Labels[ 0 ], (TAG_DONE),
  669.     (GTCY_Labels), (ULONG)&PROFILE3Labels[ 0 ], (TAG_DONE),
  670.     (GTCY_Labels), (ULONG)&CONST3Labels[ 0 ], (TAG_DONE),
  671.     (GTCY_Labels), (ULONG)&DOUBLEPUSH3Labels[ 0 ], (TAG_DONE)
  672. };
  673.  
  674. ULONG OPTIMIZERGTags[] = {
  675.     (TAG_DONE),
  676.     (GTCY_Labels), (ULONG)&OPTIMIZER4Labels[ 0 ], (TAG_DONE),
  677.     (GTCY_Labels), (ULONG)&UNROLLALL4Labels[ 0 ], (TAG_DONE),
  678.     (GTCY_Labels), (ULONG)&OPTIMIZESIZE4Labels[ 0 ], (TAG_DONE),
  679.     (GTCY_Labels), (ULONG)&OPTIMIZESPEED4Labels[ 0 ], (TAG_DONE),
  680.     (GTCY_Labels), (ULONG)&ASSOZIATIVEFP4Labels[ 0 ], (TAG_DONE),
  681.     (GTCY_Labels), (ULONG)&OPTIMIZEALIAS4Labels[ 0 ], (TAG_DONE),
  682.     (GTCY_Labels), (ULONG)&OPTIMIZEINLINE4Labels[ 0 ], (TAG_DONE),
  683.     (GTCY_Labels), (ULONG)&OPTIMIZEPEEPHOLE4Labels[ 0 ], (TAG_DONE),
  684.     (GTCY_Labels), (ULONG)&OPTIMIZESCHEDULE4Labels[ 0 ], (TAG_DONE),
  685.     (GTST_MaxChars), 256, (TAG_DONE),
  686.     (GTST_MaxChars), 256, (TAG_DONE)
  687. };
  688.  
  689. ULONG LINKERGTags[] = {
  690.     (TAG_DONE),
  691.     (GTCY_Labels), (ULONG)&LINKER5Labels[ 0 ], (TAG_DONE),
  692.     (TAG_DONE),
  693.     (TAG_DONE),
  694.     (GTST_MaxChars), 256, (TAG_DONE),
  695.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  696.     (GTCY_Labels), (ULONG)&EXTRALIB5Labels[ 0 ], (TAG_DONE),
  697.     (TAG_DONE),
  698.     (TAG_DONE),
  699.     (GTST_MaxChars), 256, (TAG_DONE),
  700.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  701.     (GTCY_Labels), (ULONG)&STDLIB5Labels[ 0 ], (TAG_DONE)
  702. };
  703.  
  704. ULONG SPECIALGTags[] = {
  705.     (TAG_DONE),
  706.     (GTST_MaxChars), 256, (TAG_DONE),
  707.     (GTLV_ShowSelected), 1L, (TAG_DONE),
  708.     (TAG_DONE),
  709.     (TAG_DONE)
  710. };
  711.  
  712. ULONG PPCGTags[] = {
  713.     (TAG_DONE),
  714.     (GTCY_Labels), (ULONG)&MERGEFPCONST7Labels[ 0 ], (TAG_DONE),
  715.     (GTCY_Labels), (ULONG)&RODATA7Labels[ 0 ], (TAG_DONE),
  716.     (GTCY_Labels), (ULONG)&FSUBZERO7Labels[ 0 ], (TAG_DONE),
  717.     (GTCY_Labels), (ULONG)&AMIGAALIGN7Labels[ 0 ], (TAG_DONE),
  718.     (GTCY_Labels), (ULONG)&ELF7Labels[ 0 ], (TAG_DONE),
  719.     (GTCY_Labels), (ULONG)&POWEROPEN7Labels[ 0 ], (TAG_DONE),
  720.     (GTCY_Labels), (ULONG)®ISTERNAMES7Labels[ 0 ], (TAG_DONE),
  721.     (GTCY_Labels), (ULONG)&SETCCS7Labels[ 0 ], (TAG_DONE),
  722.     (GTCY_Labels), (ULONG)&LMW7Labels[ 0 ], (TAG_DONE),
  723.     (GTCY_Labels), (ULONG)&FMADD7Labels[ 0 ], (TAG_DONE),
  724.     (GTCY_Labels), (ULONG)&EMBEDDEDABI7Labels[ 0 ], (TAG_DONE),
  725.     (GTCY_Labels), (ULONG)&ALIGNSTACK7Labels[ 0 ], (TAG_DONE)
  726. };
  727.  
  728. int SetupScreen( void )
  729. {
  730.     if ( ! ( Scr = LockPubScreen( PubScreenName )))
  731.         return( 1L );
  732.  
  733.     if ( ! ( VisualInfo = GetVisualInfo( Scr, TAG_DONE )))
  734.         return( 2L );
  735.  
  736.     return( 0L );
  737. }
  738.  
  739. void CloseDownScreen( void )
  740. {
  741.     if ( VisualInfo ) {
  742.         FreeVisualInfo( VisualInfo );
  743.         VisualInfo = NULL;
  744.     }
  745.  
  746.     if ( Scr        ) {
  747.         UnlockPubScreen( NULL, Scr );
  748.         Scr = NULL;
  749.     }
  750. }
  751.  
  752. int OpenINDEXWindow( void )
  753. {
  754.     struct NewGadget    ng;
  755.     struct Gadget    *g;
  756.     struct TagItem    *tmp;
  757.     UWORD        lc, tc;
  758.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  759.  
  760.     if ( ! ( g = CreateContext( &INDEXGList )))
  761.         return( 1L );
  762.  
  763.     for( lc = 0, tc = 0; lc < INDEX_CNT; lc++ ) {
  764.  
  765.         CopyMem((char * )&INDEXNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  766.  
  767.         ng.ng_VisualInfo = VisualInfo;
  768.         ng.ng_TextAttr   = &topaz8;
  769.         ng.ng_LeftEdge  += offx;
  770.         ng.ng_TopEdge   += offy;
  771.  
  772.         INDEXGadgets[ lc ] = g = CreateGadgetA((ULONG)INDEXGTypes[ lc ], g, &ng, ( struct TagItem * )&INDEXGTags[ tc ] );
  773.  
  774.         while( INDEXGTags[ tc ] ) tc += 2;
  775.         tc++;
  776.  
  777.         if ( NOT g )
  778.             return( 2L );
  779.     }
  780.  
  781.     if ( ! ( INDEXWnd = OpenWindowTags( NULL,
  782.                 WA_Left,    INDEXLeft,
  783.                 WA_Top,        INDEXTop,
  784.                 WA_Width,    INDEXWidth,
  785.                 WA_Height,    INDEXHeight + offy,
  786.                 WA_IDCMP,    BUTTONIDCMP|CYCLEIDCMP|STRINGIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  787.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH|WFLG_ACTIVATE,
  788.                 WA_Gadgets,    INDEXGList,
  789.                 WA_Title,    INDEXWdt,
  790.                 WA_PubScreen,    Scr,
  791.                 TAG_DONE )))
  792.     return( 4L );
  793.  
  794.     GT_RefreshWindow( INDEXWnd, NULL );
  795.  
  796.     return( 0L );
  797. }
  798.  
  799. void CloseINDEXWindow( void )
  800. {
  801.     if ( INDEXWnd        ) {
  802.         CloseWindow( INDEXWnd );
  803.         INDEXWnd = NULL;
  804.     }
  805.  
  806.     if ( INDEXGList      ) {
  807.         FreeGadgets( INDEXGList );
  808.         INDEXGList = NULL;
  809.     }
  810. }
  811.  
  812. int OpenCOMPILERWindow( void )
  813. {
  814.     struct NewGadget    ng;
  815.     struct Gadget    *g;
  816.     struct TagItem    *tmp;
  817.     UWORD        lc, tc;
  818.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  819.  
  820.     if ( ! ( g = CreateContext( &COMPILERGList )))
  821.         return( 1L );
  822.  
  823.     for( lc = 0, tc = 0; lc < COMPILER_CNT; lc++ ) {
  824.  
  825.         CopyMem((char * )&COMPILERNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  826.  
  827.         ng.ng_VisualInfo = VisualInfo;
  828.         ng.ng_TextAttr   = &topaz8;
  829.         ng.ng_LeftEdge  += offx;
  830.         ng.ng_TopEdge   += offy;
  831.  
  832.         if ( COMPILERGTypes[ lc ] == LISTVIEW_KIND ) {
  833.             if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&COMPILERGTags[ tc ] )) {
  834.                 if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g;
  835.             }
  836.         }
  837.  
  838.         COMPILERGadgets[ lc ] = g = CreateGadgetA((ULONG)COMPILERGTypes[ lc ], g, &ng, ( struct TagItem * )&COMPILERGTags[ tc ] );
  839.  
  840.         while( COMPILERGTags[ tc ] ) tc += 2;
  841.         tc++;
  842.  
  843.         if ( NOT g )
  844.             return( 2L );
  845.     }
  846.  
  847.     if ( ! ( COMPILERWnd = OpenWindowTags( NULL,
  848.                 WA_Left,    COMPILERLeft,
  849.                 WA_Top,        COMPILERTop,
  850.                 WA_Width,    COMPILERWidth,
  851.                 WA_Height,    COMPILERHeight + offy,
  852.                 WA_IDCMP,    CYCLEIDCMP|STRINGIDCMP|LISTVIEWIDCMP|BUTTONIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  853.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  854.                 WA_Gadgets,    COMPILERGList,
  855.                 WA_Title,    COMPILERWdt,
  856.                 WA_PubScreen,    Scr,
  857.                 TAG_DONE )))
  858.     return( 4L );
  859.  
  860.     GT_RefreshWindow( COMPILERWnd, NULL );
  861.  
  862.     return( 0L );
  863. }
  864.  
  865. void CloseCOMPILERWindow( void )
  866. {
  867.     if ( COMPILERWnd        ) {
  868.         CloseWindow( COMPILERWnd );
  869.         COMPILERWnd = NULL;
  870.     }
  871.  
  872.     if ( COMPILERGList      ) {
  873.         FreeGadgets( COMPILERGList );
  874.         COMPILERGList = NULL;
  875.     }
  876. }
  877.  
  878. int OpenMESSAGESWindow( void )
  879. {
  880.     struct NewGadget    ng;
  881.     struct Gadget    *g;
  882.     struct TagItem    *tmp;
  883.     UWORD        lc, tc;
  884.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  885.  
  886.     if ( ! ( g = CreateContext( &MESSAGESGList )))
  887.         return( 1L );
  888.  
  889.     for( lc = 0, tc = 0; lc < MESSAGES_CNT; lc++ ) {
  890.  
  891.         CopyMem((char * )&MESSAGESNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  892.  
  893.         ng.ng_VisualInfo = VisualInfo;
  894.         ng.ng_TextAttr   = &topaz8;
  895.         ng.ng_LeftEdge  += offx;
  896.         ng.ng_TopEdge   += offy;
  897.  
  898.         if ( MESSAGESGTypes[ lc ] == LISTVIEW_KIND ) {
  899.             if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&MESSAGESGTags[ tc ] )) {
  900.                 if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g;
  901.             }
  902.         }
  903.  
  904.         MESSAGESGadgets[ lc ] = g = CreateGadgetA((ULONG)MESSAGESGTypes[ lc ], g, &ng, ( struct TagItem * )&MESSAGESGTags[ tc ] );
  905.  
  906.         while( MESSAGESGTags[ tc ] ) tc += 2;
  907.         tc++;
  908.  
  909.         if ( NOT g )
  910.             return( 2L );
  911.     }
  912.  
  913.     if ( ! ( MESSAGESWnd = OpenWindowTags( NULL,
  914.                 WA_Left,    MESSAGESLeft,
  915.                 WA_Top,        MESSAGESTop,
  916.                 WA_Width,    MESSAGESWidth,
  917.                 WA_Height,    MESSAGESHeight + offy,
  918.                 WA_IDCMP,    BUTTONIDCMP|CYCLEIDCMP|STRINGIDCMP|LISTVIEWIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  919.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  920.                 WA_Gadgets,    MESSAGESGList,
  921.                 WA_Title,    MESSAGESWdt,
  922.                 WA_PubScreen,    Scr,
  923.                 TAG_DONE )))
  924.     return( 4L );
  925.  
  926.     GT_RefreshWindow( MESSAGESWnd, NULL );
  927.  
  928.     return( 0L );
  929. }
  930.  
  931. void CloseMESSAGESWindow( void )
  932. {
  933.     if ( MESSAGESWnd        ) {
  934.         CloseWindow( MESSAGESWnd );
  935.         MESSAGESWnd = NULL;
  936.     }
  937.  
  938.     if ( MESSAGESGList      ) {
  939.         FreeGadgets( MESSAGESGList );
  940.         MESSAGESGList = NULL;
  941.     }
  942. }
  943.  
  944. int OpenCODEWindow( void )
  945. {
  946.     struct NewGadget    ng;
  947.     struct Gadget    *g;
  948.     struct TagItem    *tmp;
  949.     UWORD        lc, tc;
  950.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  951.  
  952.     if ( ! ( g = CreateContext( &CODEGList )))
  953.         return( 1L );
  954.  
  955.     for( lc = 0, tc = 0; lc < CODE_CNT; lc++ ) {
  956.  
  957.         CopyMem((char * )&CODENGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  958.  
  959.         ng.ng_VisualInfo = VisualInfo;
  960.         ng.ng_TextAttr   = &topaz8;
  961.         ng.ng_LeftEdge  += offx;
  962.         ng.ng_TopEdge   += offy;
  963.  
  964.         CODEGadgets[ lc ] = g = CreateGadgetA((ULONG)CODEGTypes[ lc ], g, &ng, ( struct TagItem * )&CODEGTags[ tc ] );
  965.  
  966.         while( CODEGTags[ tc ] ) tc += 2;
  967.         tc++;
  968.  
  969.         if ( NOT g )
  970.             return( 2L );
  971.     }
  972.  
  973.     if ( ! ( CODEWnd = OpenWindowTags( NULL,
  974.                 WA_Left,    CODELeft,
  975.                 WA_Top,        CODETop,
  976.                 WA_Width,    CODEWidth,
  977.                 WA_Height,    CODEHeight + offy,
  978.                 WA_IDCMP,    BUTTONIDCMP|CYCLEIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  979.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  980.                 WA_Gadgets,    CODEGList,
  981.                 WA_Title,    CODEWdt,
  982.                 WA_PubScreen,    Scr,
  983.                 TAG_DONE )))
  984.     return( 4L );
  985.  
  986.     GT_RefreshWindow( CODEWnd, NULL );
  987.  
  988.     return( 0L );
  989. }
  990.  
  991. void CloseCODEWindow( void )
  992. {
  993.     if ( CODEWnd        ) {
  994.         CloseWindow( CODEWnd );
  995.         CODEWnd = NULL;
  996.     }
  997.  
  998.     if ( CODEGList      ) {
  999.         FreeGadgets( CODEGList );
  1000.         CODEGList = NULL;
  1001.     }
  1002. }
  1003.  
  1004. void OPTIMIZERRender( void )
  1005. {
  1006.     UWORD        offx, offy;
  1007.  
  1008.     offx = OPTIMIZERWnd->BorderLeft;
  1009.     offy = OPTIMIZERWnd->BorderTop;
  1010.  
  1011.     PrintIText( OPTIMIZERWnd->RPort, OPTIMIZERIText, offx, offy );
  1012. }
  1013.  
  1014. int OpenOPTIMIZERWindow( void )
  1015. {
  1016.     struct NewGadget    ng;
  1017.     struct Gadget    *g;
  1018.     struct TagItem    *tmp;
  1019.     UWORD        lc, tc;
  1020.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  1021.  
  1022.     if ( ! ( g = CreateContext( &OPTIMIZERGList )))
  1023.         return( 1L );
  1024.  
  1025.     for( lc = 0, tc = 0; lc < OPTIMIZER_CNT; lc++ ) {
  1026.  
  1027.         CopyMem((char * )&OPTIMIZERNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  1028.  
  1029.         ng.ng_VisualInfo = VisualInfo;
  1030.         ng.ng_TextAttr   = &topaz8;
  1031.         ng.ng_LeftEdge  += offx;
  1032.         ng.ng_TopEdge   += offy;
  1033.  
  1034.         OPTIMIZERGadgets[ lc ] = g = CreateGadgetA((ULONG)OPTIMIZERGTypes[ lc ], g, &ng, ( struct TagItem * )&OPTIMIZERGTags[ tc ] );
  1035.  
  1036.         while( OPTIMIZERGTags[ tc ] ) tc += 2;
  1037.         tc++;
  1038.  
  1039.         if ( NOT g )
  1040.             return( 2L );
  1041.     }
  1042.  
  1043.     if ( ! ( OPTIMIZERWnd = OpenWindowTags( NULL,
  1044.                 WA_Left,    OPTIMIZERLeft,
  1045.                 WA_Top,        OPTIMIZERTop,
  1046.                 WA_Width,    OPTIMIZERWidth,
  1047.                 WA_Height,    OPTIMIZERHeight + offy,
  1048.                 WA_IDCMP,    BUTTONIDCMP|CYCLEIDCMP|STRINGIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  1049.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  1050.                 WA_Gadgets,    OPTIMIZERGList,
  1051.                 WA_Title,    OPTIMIZERWdt,
  1052.                 WA_PubScreen,    Scr,
  1053.                 TAG_DONE )))
  1054.     return( 4L );
  1055.  
  1056.     GT_RefreshWindow( OPTIMIZERWnd, NULL );
  1057.  
  1058.     OPTIMIZERRender();
  1059.  
  1060.     return( 0L );
  1061. }
  1062.  
  1063. void CloseOPTIMIZERWindow( void )
  1064. {
  1065.     if ( OPTIMIZERWnd        ) {
  1066.         CloseWindow( OPTIMIZERWnd );
  1067.         OPTIMIZERWnd = NULL;
  1068.     }
  1069.  
  1070.     if ( OPTIMIZERGList      ) {
  1071.         FreeGadgets( OPTIMIZERGList );
  1072.         OPTIMIZERGList = NULL;
  1073.     }
  1074. }
  1075.  
  1076. int OpenLINKERWindow( void )
  1077. {
  1078.     struct NewGadget    ng;
  1079.     struct Gadget    *g;
  1080.     struct TagItem    *tmp;
  1081.     UWORD        lc, tc;
  1082.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  1083.  
  1084.     if ( ! ( g = CreateContext( &LINKERGList )))
  1085.         return( 1L );
  1086.  
  1087.     for( lc = 0, tc = 0; lc < LINKER_CNT; lc++ ) {
  1088.  
  1089.         CopyMem((char * )&LINKERNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  1090.  
  1091.         ng.ng_VisualInfo = VisualInfo;
  1092.         ng.ng_TextAttr   = &topaz8;
  1093.         ng.ng_LeftEdge  += offx;
  1094.         ng.ng_TopEdge   += offy;
  1095.  
  1096.         if ( LINKERGTypes[ lc ] == LISTVIEW_KIND ) {
  1097.             if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&LINKERGTags[ tc ] )) {
  1098.                 if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g;
  1099.             }
  1100.         }
  1101.  
  1102.         LINKERGadgets[ lc ] = g = CreateGadgetA((ULONG)LINKERGTypes[ lc ], g, &ng, ( struct TagItem * )&LINKERGTags[ tc ] );
  1103.  
  1104.         while( LINKERGTags[ tc ] ) tc += 2;
  1105.         tc++;
  1106.  
  1107.         if ( NOT g )
  1108.             return( 2L );
  1109.     }
  1110.  
  1111.     if ( ! ( LINKERWnd = OpenWindowTags( NULL,
  1112.                 WA_Left,    LINKERLeft,
  1113.                 WA_Top,        LINKERTop,
  1114.                 WA_Width,    LINKERWidth,
  1115.                 WA_Height,    LINKERHeight + offy,
  1116.                 WA_IDCMP,    BUTTONIDCMP|CYCLEIDCMP|STRINGIDCMP|LISTVIEWIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  1117.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  1118.                 WA_Gadgets,    LINKERGList,
  1119.                 WA_Title,    LINKERWdt,
  1120.                 WA_PubScreen,    Scr,
  1121.                 TAG_DONE )))
  1122.     return( 4L );
  1123.  
  1124.     GT_RefreshWindow( LINKERWnd, NULL );
  1125.  
  1126.     return( 0L );
  1127. }
  1128.  
  1129. void CloseLINKERWindow( void )
  1130. {
  1131.     if ( LINKERWnd        ) {
  1132.         CloseWindow( LINKERWnd );
  1133.         LINKERWnd = NULL;
  1134.     }
  1135.  
  1136.     if ( LINKERGList      ) {
  1137.         FreeGadgets( LINKERGList );
  1138.         LINKERGList = NULL;
  1139.     }
  1140. }
  1141.  
  1142. int OpenSPECIALWindow( void )
  1143. {
  1144.     struct NewGadget    ng;
  1145.     struct Gadget    *g;
  1146.     struct TagItem    *tmp;
  1147.     UWORD        lc, tc;
  1148.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  1149.  
  1150.     if ( ! ( g = CreateContext( &SPECIALGList )))
  1151.         return( 1L );
  1152.  
  1153.     for( lc = 0, tc = 0; lc < SPECIAL_CNT; lc++ ) {
  1154.  
  1155.         CopyMem((char * )&SPECIALNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  1156.  
  1157.         ng.ng_VisualInfo = VisualInfo;
  1158.         ng.ng_TextAttr   = &topaz8;
  1159.         ng.ng_LeftEdge  += offx;
  1160.         ng.ng_TopEdge   += offy;
  1161.  
  1162.         if ( SPECIALGTypes[ lc ] == LISTVIEW_KIND ) {
  1163.             if ( tmp = FindTagItem( GTLV_ShowSelected, ( struct TagItem * )&SPECIALGTags[ tc ] )) {
  1164.                 if ( tmp->ti_Data ) tmp->ti_Data = (ULONG)g;
  1165.             }
  1166.         }
  1167.  
  1168.         SPECIALGadgets[ lc ] = g = CreateGadgetA((ULONG)SPECIALGTypes[ lc ], g, &ng, ( struct TagItem * )&SPECIALGTags[ tc ] );
  1169.  
  1170.         while( SPECIALGTags[ tc ] ) tc += 2;
  1171.         tc++;
  1172.  
  1173.         if ( NOT g )
  1174.             return( 2L );
  1175.     }
  1176.  
  1177.     if ( ! ( SPECIALWnd = OpenWindowTags( NULL,
  1178.                 WA_Left,    SPECIALLeft,
  1179.                 WA_Top,        SPECIALTop,
  1180.                 WA_Width,    SPECIALWidth,
  1181.                 WA_Height,    SPECIALHeight + offy,
  1182.                 WA_IDCMP,    BUTTONIDCMP|STRINGIDCMP|LISTVIEWIDCMP|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  1183.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  1184.                 WA_Gadgets,    SPECIALGList,
  1185.                 WA_Title,    SPECIALWdt,
  1186.                 WA_PubScreen,    Scr,
  1187.                 TAG_DONE )))
  1188.     return( 4L );
  1189.  
  1190.     GT_RefreshWindow( SPECIALWnd, NULL );
  1191.  
  1192.     return( 0L );
  1193. }
  1194.  
  1195. void CloseSPECIALWindow( void )
  1196. {
  1197.     if ( SPECIALWnd        ) {
  1198.         CloseWindow( SPECIALWnd );
  1199.         SPECIALWnd = NULL;
  1200.     }
  1201.  
  1202.     if ( SPECIALGList      ) {
  1203.         FreeGadgets( SPECIALGList );
  1204.         SPECIALGList = NULL;
  1205.     }
  1206. }
  1207.  
  1208. int OpenPPCWindow( void )
  1209. {
  1210.     struct NewGadget    ng;
  1211.     struct Gadget    *g;
  1212.     struct TagItem    *tmp;
  1213.     UWORD        lc, tc;
  1214.     UWORD        offx = Scr->WBorLeft, offy = Scr->WBorTop + Scr->RastPort.TxHeight + 1;
  1215.  
  1216.     if ( ! ( g = CreateContext( &PPCGList )))
  1217.         return( 1L );
  1218.  
  1219.     for( lc = 0, tc = 0; lc < PPC_CNT; lc++ ) {
  1220.  
  1221.         CopyMem((char * )&PPCNGad[ lc ], (char * )&ng, (long)sizeof( struct NewGadget ));
  1222.  
  1223.         ng.ng_VisualInfo = VisualInfo;
  1224.         ng.ng_TextAttr   = &topaz8;
  1225.         ng.ng_LeftEdge  += offx;
  1226.         ng.ng_TopEdge   += offy;
  1227.  
  1228.         PPCGadgets[ lc ] = g = CreateGadgetA((ULONG)PPCGTypes[ lc ], g, &ng, ( struct TagItem * )&PPCGTags[ tc ] );
  1229.  
  1230.         while( PPCGTags[ tc ] ) tc += 2;
  1231.         tc++;
  1232.  
  1233.         if ( NOT g )
  1234.             return( 2L );
  1235.     }
  1236.  
  1237.     if ( ! ( PPCWnd = OpenWindowTags( NULL,
  1238.                 WA_Left,    PPCLeft,
  1239.                 WA_Top,        PPCTop,
  1240.                 WA_Width,    PPCWidth,
  1241.                 WA_Height,    PPCHeight + offy,
  1242.                 WA_IDCMP,    BUTTONIDCMP|CYCLEIDCMP|IDCMP_MENUPICK|IDCMP_CLOSEWINDOW|IDCMP_REFRESHWINDOW,
  1243.                 WA_Flags,    WFLG_DRAGBAR|WFLG_DEPTHGADGET|WFLG_SMART_REFRESH,
  1244.                 WA_Gadgets,    PPCGList,
  1245.                 WA_Title,    PPCWdt,
  1246.                 WA_PubScreen,    Scr,
  1247.                 TAG_DONE )))
  1248.     return( 4L );
  1249.  
  1250.     GT_RefreshWindow( PPCWnd, NULL );
  1251.  
  1252.     return( 0L );
  1253. }
  1254.  
  1255. void ClosePPCWindow( void )
  1256. {
  1257.     if ( PPCWnd        ) {
  1258.         CloseWindow( PPCWnd );
  1259.         PPCWnd = NULL;
  1260.     }
  1261.  
  1262.     if ( PPCGList      ) {
  1263.         FreeGadgets( PPCGList );
  1264.         PPCGList = NULL;
  1265.     }
  1266. }
  1267.  
  1268.